﻿/**
 * \file VueGlobale.xaml.cs
 * \brief Classe VueGlobale.xaml
 * \author ARTUR Vincent
 * \author LAPERDRIX Pierre
 * \version 1.0
 */

namespace WpfJeu
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Shapes;
    using Xceed.Wpf.Toolkit;
    using Implem;

    /**
     * \class VueGlobale
     * \brief Affiche des statistiques globales sur la partie
     */
    public partial class VueGlobale : Window
    {

        /**
         * \fn public VueGlobale(Dictionary<Joueur, List<VueUnite>> listeVueUnite, Dictionary<Joueur, List<VueVillePrincipale>> listeVueVille)
         * \brief Constructeur de VueGlobale
         * \param listeVueUnite la liste des unités de la partie
         * \param listeVueVille la liste des villes de la partie
         */
        public VueGlobale(Dictionary<Joueur, List<VueUnite>> listeVueUnite, Dictionary<Joueur, List<VueVillePrincipale>> listeVueVille)
        {
            InitializeComponent();

            affichage(listeVueUnite, listeVueVille);
        }

        /**
        * \fn public void affichage(Dictionary<Joueur, List<VueUnite>> listeVueUnite, Dictionary<Joueur, List<VueVillePrincipale>> listeVueVille)
        * \brief Affiche les statistiques globales de la partie en cours
        * \param listeVueUnite la liste des unités de la partie
        * \param listeVueVille la liste des villes de la partie
        */
        public void affichage(Dictionary<Joueur, List<VueUnite>> listeVueUnite, Dictionary<Joueur, List<VueVillePrincipale>> listeVueVille)
        {
          //Remplissage Graphe unites 
          List<KeyValuePair<string, int>> uniteGraph = new List<KeyValuePair<string, int>>();
          foreach (Joueur j in listeVueUnite.Keys)
          {
              uniteGraph.Add(new KeyValuePair<string,int>(j.Nom,listeVueUnite[j].Count));
          }

          // Ajoute les donnes a la pie Chart
          unites.DataContext = uniteGraph;

         //Remplissage Graphe unites 
          List<KeyValuePair<string, int>> villeGraph = new List<KeyValuePair<string, int>>();
          foreach (Joueur j in listeVueVille.Keys)
          {
              villeGraph.Add(new KeyValuePair<string,int>(j.Nom,listeVueVille[j].Count));
          }

          // Ajoute les donnes a la Column Chart
          villes.DataContext = villeGraph;


        }
    }
}
